Grid Search এবং Random Search হল দুটি জনপ্রিয় পদ্ধতি যা Hyperparameter Tuning (হাইপারপারামিটার টিউনিং) এর জন্য ব্যবহৃত হয়। যখন আমরা একটি মেশিন লার্নিং মডেল তৈরি করি, তখন কিছু গুরুত্বপূর্ণ হাইপারপারামিটার থাকে যেগুলি মডেলের পারফরম্যান্সের উপর সরাসরি প্রভাব ফেলে। Grid Search এবং Random Search দুটি পদ্ধতি এই হাইপারপারামিটারগুলির জন্য সঠিক মান খোঁজার জন্য ব্যবহৃত হয়।
1. Grid Search
Grid Search একটি Exhaustive (সম্পূর্ণ) অনুসন্ধান কৌশল, যেখানে নির্দিষ্ট একাধিক হাইপারপারামিটার এবং তাদের সম্ভাব্য মানগুলি দিয়ে একটি গ্রিড তৈরি করা হয় এবং সব কম্বিনেশন পরীক্ষিত হয়। Grid Search আপনাকে একটি নির্দিষ্ট হাইপারপারামিটার সেটের মধ্যে সমস্ত সম্ভাব্য মান পরীক্ষা করতে সহায়তা করে।
Grid Search এর পদ্ধতি:
- হাইপারপারামিটার নির্বাচন: আপনি যে হাইপারপারামিটারগুলো টিউন করতে চান তা নির্বাচন করেন (যেমন, লার্নিং রেট, ব্যাচ সাইজ, নেস্ট লেয়ারের সংখ্যা ইত্যাদি)।
- মানের তালিকা তৈরি: প্রতিটি হাইপারপারামিটার জন্য সম্ভাব্য মানের একটি তালিকা তৈরি করা হয়।
- গ্রিড তৈরি: প্রতিটি হাইপারপারামিটার মানের জন্য একটি গ্রিড তৈরি করা হয়।
- সব কম্বিনেশন পরীক্ষা করা: গ্রিডে থাকা সব মানের কম্বিনেশন পরীক্ষিত হয় এবং মডেলের পারফরম্যান্স (যেমন, accuracy বা loss) পরিমাপ করা হয়।
- সেরা মডেল নির্বাচন: শেষ পর্যন্ত, সেরা পারফরম্যান্স প্রদর্শনকারী হাইপারপারামিটার সেট নির্বাচন করা হয়।
Grid Search এর সুবিধা:
- সম্পূর্ণ অনুসন্ধান: এটি সম্ভাব্য সব মানের পরীক্ষা করে, তাই এটি সবথেকে ভাল ফলাফল দেওয়ার সম্ভাবনা রাখে।
- সহজ ব্যবহারে: গ্রিড সার্চ খুবই সরল এবং সহজে বাস্তবায়নযোগ্য।
Grid Search এর অসুবিধা:
- কম্পিউটেশনালভাবে খরচসাধ্য: সমস্ত কম্বিনেশন পরীক্ষা করা হলে এটি খুব সময়সাপেক্ষ এবং কম্পিউটেশনাল শক্তি প্রয়োজন।
- স্কেলেবল না হওয়া: যখন হাইপারপারামিটার সংখ্যা বা তাদের মানের সংখ্যা বৃদ্ধি পায়, তখন এটি দ্রুত অপ্রয়োজনীয় হয়ে যেতে পারে।
Grid Search উদাহরণ:
ধরা যাক, আমরা দুটি হাইপারপারামিটার পরীক্ষা করতে চাই: learning_rate এবং batch_size। তাদের জন্য আমরা সম্ভাব্য কিছু মান নির্ধারণ করি:
learning_rate: [0.001, 0.01, 0.1]batch_size: [16, 32, 64]
এখন Grid Search তাদের সকল কম্বিনেশন পরীক্ষা করবে:
learning_rate = 0.001, batch_size = 16learning_rate = 0.001, batch_size = 32learning_rate = 0.001, batch_size = 64learning_rate = 0.01, batch_size = 16learning_rate = 0.01, batch_size = 32learning_rate = 0.01, batch_size = 64learning_rate = 0.1, batch_size = 16learning_rate = 0.1, batch_size = 32learning_rate = 0.1, batch_size = 64
এর মাধ্যমে সেরা কম্বিনেশন চিহ্নিত করা হবে।
2. Random Search
Random Search হল একটি আধিকৃত (randomized) অনুসন্ধান পদ্ধতি যেখানে হাইপারপারামিটার স্পেস থেকে র্যান্ডমভাবে মান নির্বাচন করা হয় এবং একাধিক পরীক্ষার মাধ্যমে মডেলটিকে মূল্যায়ন করা হয়। এটি Grid Search এর তুলনায় আরও দ্রুত এবং কার্যকরী হতে পারে যখন হাইপারপারামিটার স্পেস খুব বড় হয়।
Random Search এর পদ্ধতি:
- হাইপারপারামিটার নির্বাচন: Grid Search এর মতো, প্রথমে আপনি যে হাইপারপারামিটারগুলো টিউন করতে চান তা নির্বাচন করেন।
- র্যান্ডম মান নির্বাচন: প্রতিটি হাইপারপারামিটার থেকে একাধিক মান র্যান্ডমভাবে নির্বাচন করা হয়।
- কম্বিনেশন পরীক্ষা: নির্বাচিত র্যান্ডম কম্বিনেশনগুলোর জন্য মডেলের পারফরম্যান্স মূল্যায়ন করা হয়।
- সেরা মডেল নির্বাচন: পরবর্তী, সেরা পারফরম্যান্স প্রদর্শনকারী র্যান্ডম কম্বিনেশন নির্বাচন করা হয়।
Random Search এর সুবিধা:
- কম্পিউটেশনালভাবে সাশ্রয়ী: সমস্ত মান পরীক্ষা করার বদলে এটি র্যান্ডমভাবে কিছু কম্বিনেশন পরীক্ষা করে, তাই এটি Grid Search এর তুলনায় অনেক দ্রুত হতে পারে।
- বড় স্পেসের জন্য কার্যকরী: যখন হাইপারপারামিটার স্পেস খুব বড় হয়, তখন Random Search ভাল কাজ করে কারণ এটি বেশি সম্ভাব্য সমাধান পরীক্ষা করতে পারে।
Random Search এর অসুবিধা:
- ফলাফল অনিশ্চিত: কারণ এটি র্যান্ডমভাবে মান নির্বাচন করে, তাই কখনও কখনও এটি সেরা মডেল খুঁজে নাও পেতে পারে।
- কম নির্ভুলতা: কম কম্বিনেশন পরীক্ষা করার কারণে সঠিক মডেল খুঁজে পাওয়ার সম্ভাবনা কম থাকে।
Random Search উদাহরণ:
ধরা যাক, learning_rate এবং batch_size এর জন্য আমাদের র্যান্ডমভাবে কিছু মান নির্বাচন করতে হবে:
learning_rate: [0.001, 0.01, 0.1, 0.2]batch_size: [16, 32, 64, 128]
এখন, Random Search থেকে র্যান্ডমভাবে কিছু কম্বিনেশন নির্বাচন করবে, যেমন:
learning_rate = 0.01, batch_size = 16learning_rate = 0.1, batch_size = 64learning_rate = 0.001, batch_size = 32
এভাবে এটি কিছু পরীক্ষা করবে এবং সেরা পারফরম্যান্স প্রদর্শনকারী মডেলটি নির্বাচন করবে।
Grid Search এবং Random Search এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Grid Search | Random Search |
|---|---|---|
| অনুসন্ধান পদ্ধতি | Exhaustive (সম্পূর্ণ অনুসন্ধান) | র্যান্ডম অনুসন্ধান |
| কম্পিউটেশনাল খরচ | উচ্চ (সব কম্বিনেশন পরীক্ষা করতে সময় নেয়) | কম (র্যান্ডম কম্বিনেশন পরীক্ষা করা হয়) |
| কার্যকারিতা | নির্দিষ্ট গ্রিডের মধ্যে সঠিক ফলাফল খুঁজে পাওয়ার জন্য ভাল | বৃহৎ স্পেসের জন্য কার্যকর, কিন্তু মাঝে মাঝে সঠিক ফলাফল নাও পেতে পারে |
| পারফরম্যান্স | সমস্ত সম্ভাব্য কম্বিনেশন পরীক্ষা করে, সঠিক ফলাফল নিশ্চিত | দ্রুত, তবে সব সময় সঠিক ফলাফল পাওয়া নাও যেতে পারে |
সারাংশ
- Grid Search: সব সম্ভাব্য হাইপারপারামিটার কম্বিনেশন পরীক্ষা করে, তবে এটি কম্পিউটেশনালভাবে খরচসাধ্য এবং সময়সাপেক্ষ।
- Random Search: র্যান্ডমভাবে কিছু হাইপারপারামিটার কম্বিনেশন পরীক্ষা করে, যা বড় স্পেসের জন্য দ্রুত এবং কার্যকরী হতে পারে, তবে কিছু কম্বিনেশন বাদ পড়তে পারে।
যেহেতু Random Search অনেক সময় দ্রুত ফলাফল প্রদান করতে পারে এবং কার্যকরী, তাই এটি সাধারণত Grid Search এর তুলনায় বেশি ব্যবহৃত হয়, বিশেষত যখন হাইপারপারামিটার স্পেস বড় হয়।